package com.zygh.lz.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zygh.lz.entity.Information;
import com.zygh.lz.entity.bean.Pushsource;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface InformationMapper extends BaseMapper<Information> {

    /**
     * 查询所有记录
     *
     * @return 返回集合，没有返回空List
     */
    List<Information> listAll();

    List<Information> findInformationByType(@Param("acceptWarningSignal") String acceptWarningSignal,
                                            @Param("isRead") String isRead);


    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    Information getById(Integer id);

    /**
     * 新增，插入所有字段
     *
     * @param information 新增的记录
     * @return 返回影响行数
     */
    int insert(Information information);

    /**
     * 新增，忽略null字段
     *
     * @param information 新增的记录
     * @return 返回影响行数
     */
    int insertIgnoreNull(Information information);

    /**
     * 修改，修改所有字段
     *
     * @param information 修改的记录
     * @return 返回影响行数
     */
    int update(Information information);

    /**
     * 修改，忽略null字段
     *
     * @param information 修改的记录
     * @return 返回影响行数
     */
    int updateIgnoreNull(Information information);

    /**
     * 删除记录
     *
     * @param information 待删除的记录
     * @return 返回影响行数
     */
    int delete(Information information);


    List<Information> findPushHistory(Pushsource pushsource);

    List<Map> findInformationInfo(Integer id);

    int findInformationStatis(@Param("sectionId") Integer sectionId,
                              @Param("startTime") String startTime,
                              @Param("endTime") String endTime,
                              @Param("isRead") Integer isRead,
                              @Param("type") String type);
}
